﻿using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using SoftMedia.Opcion.Web.OpcionService;
using Telerik.Web.Mvc;

namespace SoftMedia.Opcion.Web.Controllers
{
    [Authorize]
    public class AsociadoController : Controller
    {
        //
        // GET: /Asociado/
        #region Contratos

        public ActionResult Contratos(int id)
        {
            OpcionService.OpcionClient svc = new OpcionService.OpcionClient();
            OpcionService.ContratosPorDocumento_Result[] contratosArray = svc.GetContratosPorDocumento(id);
            Session["contratos"] = contratosArray.ToList();
            return View(contratosArray);
        }

        #endregion

        #region Estado de Cuenta

        public ActionResult EstadoCuenta(int id)
        {
            return View(GetEcPorCodContrato(id));
        }

        public IEnumerable<EstadosDeCuenta_Result> GetEcPorCodContrato(int id)
        {
            using (OpcionClient svc = new OpcionClient())
            {
                OpcionService.EstadosDeCuenta_Result[] ecArray = svc.GetEstadosCuenta(id);
                return ecArray.AsEnumerable();
            }
        }

        [GridAction]
        public ActionResult _ECList(int id)
        {
            return View(new GridModel(GetEcPorCodContrato(id)));
        }

        public ActionResult ECList(int id)
        {
            return View(GetEcPorCodContrato(id));
        }

        [HttpPost]
        public ActionResult _jsonEC(string id)
        {
            int codcontrato = int.Parse(id);
            Session["codcontrato"] = codcontrato;
            List<SoftMedia.Opcion.Web.OpcionService.ContratosPorDocumento_Result> lstContrato = new List<SoftMedia.Opcion.Web.OpcionService.ContratosPorDocumento_Result>();
            lstContrato = Session["contratos"] as List<SoftMedia.Opcion.Web.OpcionService.ContratosPorDocumento_Result>;
            SoftMedia.Opcion.Web.OpcionService.ContratosPorDocumento_Result head = (from e in lstContrato where e.codcontrato == codcontrato select e).FirstOrDefault();
            Session["head"] = head;
            return Json(new { redirect = Url.Action("EstadoCuenta", "Asociado", new { id = id }) });
        }


        public ActionResult RedirectEC(string id)
        {
            int codcontrato = int.Parse(id);
            Session["codcontrato"] = codcontrato;
            List<SoftMedia.Opcion.Web.OpcionService.ContratosPorDocumento_Result> lstContrato = new List<SoftMedia.Opcion.Web.OpcionService.ContratosPorDocumento_Result>();
            lstContrato = Session["contratos"] as List<SoftMedia.Opcion.Web.OpcionService.ContratosPorDocumento_Result>;
            SoftMedia.Opcion.Web.OpcionService.ContratosPorDocumento_Result head = (from e in lstContrato where e.codcontrato == codcontrato select e).FirstOrDefault();
            Session["head"] = head;

            return RedirectToAction("EstadoCuenta", "Asociado", new { id = id });
        }
        public ActionResult EC(int id)
        {
            return View(GetEcPorCodContrato(id));
        }

        [GridAction]
        public ActionResult _EC(int id)
        {
            return View(new GridModel(GetEcPorCodContrato(id)));
        }

        #endregion

        #region Resultado Asamblea

        public ActionResult CambiarPassword()
        {
            return View();
        }

        #endregion

    }
}
